package com.job.moudle1;

import java.util.Arrays;
import java.util.Scanner;

public class task4 {

    public static String[] extend(String[] array){
        int newSize = new Double(array.length * 1.5).intValue();
        String[] newArray = new String[newSize];
        for(int i = 0; i < array.length*0.8; i++){
            newArray[i] = array[i];
        }
        return newArray;
    }
    public static void main(String[] args) {
        System.out.println("**************************************************************************************");
        System.out.println("       编程题：自定义数组的扩容，当数据达到容量的80%则自动扩容1.5倍                       ");
        System.out.println("**************************************************************************************");
        System.out.println("解题思路：定义一个数组，长度为10，当输入填充达到容量的80%的时候，自动扩容1.5倍               ");
        System.out.println("        扩容其实就是数组的拷贝和引用等知识点                                              ");
        System.out.println("**************************************************************************************");

        String[] array = new String[10];
        Scanner sc = new Scanner(System.in);
        int count = 0;
        String temp;
        do{
            System.out.print("请输入你需要记录的数据(输入quit退出)：");
            temp = sc.nextLine();
            System.out.println();
            if(!"quit".equals(temp)){
                array[count] = temp;
                if(++count >= array.length * 0.8) {
                    System.out.println("数据容量：" + count*100.0/array.length + "%, 已经达到阈值：80%");
                    System.out.println("进行数组扩容...");
                    array = extend(array);
                    System.out.println("扩容完毕，最新容量为：" + array.length + ", 当前空余容量:" + (100 - count*100.0/array.length) + "%");
                }else{
                    System.out.println("当前容量使用情况:" + (count*100.0/array.length) + "%");
                }
            }
        }while(!"quit".equals(temp));
        System.out.println("当前所有数据：" + Arrays.toString(array));

        System.out.println("**********************************************");
        System.out.println("            恭喜南哥成功完成一题                ");
        System.out.println("**********************************************");
    }
}
